#导入pymysql
from typing import Reversible
import pymysql
import datetime
#md5加密
import hashlib

from pymysql import cursors
#数据密码加密方法

#导入配置文件
from settings import DB_NAME,DB_HOST,DB_PASSWORD,DB_USER


def make_password(password):
    #实例化md5对象
    md5 = hashlib.md5()
    #转码
    sign_utf8 = str(password).encode(encoding='utf-8')
    #加密操作
    md5.update(sign_utf8)
    #返回密文
    return md5.hexdigest()



import time
class Db:
    #初始化方法
    def __init__(self):
        #链接数据库
        self.conn = pymysql.connect(host=DB_HOST,user=DB_USER,password = DB_PASSWORD,db=DB_NAME,
        charset='utf8',cursorclass=pymysql.cursors.DictCursor)
        #创建游标
        self.cursor = self.conn.cursor()

    #插入方法
    def insert(self,sql):
        #执行sql 语句
        self.cursor.execute(sql)
        self.conn.commit()
        return 'insert ok'
        # execute，fetchone，fetchall

    #修改操作
    def update(self,sql):
        #执行sql语句
        self.cursor = self.conn.cursor()
        #执行sql 语句
        self.cursor.execute(sql)
        self.conn.commit()
        return 'update ok'
    def delete(self,sql):
        self.cursor.execute(sql)
        self.conn.commit()
        return 'delete ok'
    
    #查询方法 单个数据
    def get_one(self,sql):
        #执行sql 语句
        self.cursor.execute(sql)
        #获取数据
        res = self.cursor.fetchone()
        #返回结果集
        return res
    #查询所有
    def get_all(self,sql):
        #执行sql 语句
        self.cursor.execute(sql)
        #获取数据
        res = self.cursor.fetchall()
        #返回结果集
        return res
    #析构方法
    def __del__(self):
        #关闭游标
        self.cursor.close()
        #关闭数据库连接
        self.conn.close()








